from django import template
register = template.Library()

from django.utils.html import format_html


# 自定义标签 ,解决 购物车价格小计
@register.simple_tag
def cartxj(n1,n2):
    res = n1*n2
    # return round(res,2)
    # return "{:.2f}".format(res)
    return '%.2f'%(res)

    

# 自定义标签 ,解决 缩进问题
@register.simple_tag
def sj(res):
    num = res.count(',')-1
    res = num * '|<×××>'
    return format_html(res)

# 自定义 分页 标签
@register.simple_tag
def ShowPages(count,request):
    '''
    count  总页数      100
    p      当前页码     1

    begin 开始页
    end  结束页

    return 10个页码数
    '''
    p = int(request.GET.get('p',1))

    begin = p-4
    end = p+5
    # 判断如果当前p 小于5
    if p < 5:
        begin = 1
        end = 10
    # 判断当前页 如果大于 总页数-5
    if p > (count-5):
        begin = count-9
        end = count
    # 如果 总页数小于10
    if count < 10:
        begin = 1
        end = count

    # 获取页面上的其它搜索条件 &types=username&keywords=da
    data = request.GET.dict()
    data.pop('p',None)
    res = ''
    for k,v in data.items():
        res += '&'+k+'='+v

    # {'types': 'username', 'keywords': 'da'}
    #  &types=username&keywords=da


    ps = ''
    # 上一页
    if p > 1:
        ps += '<li><a href="?p='+str(p-1)+res+'">«</a></li>'
    else :
        ps += '<li><a href="?p='+str(1)+res+'">«</a></li>'

    #首页
    ps += '<li><a href="?p=1'+res+'">首页</a></li>'

    #中间页码
    for x in range(begin,end+1):
        # 判断是否为当前页
        if p == x:
            ps+= '<li class="am-active"><a href="?p='+str(x)+res+'">'+str(x)+'</a></li>'
        else:
            ps+= '<li><a href="?p='+str(x)+res+'">'+str(x)+'</a></li>'

    #尾页
    ps += '<li><a href="?p='+str(count)+res+'">尾页</a></li>'

    #下一页
    if p < count:
        ps += '<li><a href="?p='+str(p+1)+res+'">»</a></li>'
    else :
        ps += '<li><a href="?p='+str(count)+res+'">»</a></li>'
    return format_html(ps)